package movilmax.sia_corp.action;

import java.util.ArrayList;


import java.util.List;
import java.util.Map;
import movilmax.sia_corp.model.Listax;
import movilmax.sia_corp.model.ProveedorServicios;
import movilmax.sia_corp.model.Usuario;
import apli.conectar.Conectar;
import basedatos.Resultado;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class CargarServSol extends ActionSupport{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private ProveedorServicios provedorServicio;
	private List<Listax>   proveedor;
	private List<Listax>   motivoCambio;
	private List<Listax>   velocidad;
	private List<Listax>   velocidadsol;
	private List<Listax>   producto_vel;
	private List<Listax>   servicios;
	
	private List<Listax>   fuente;
	
	private String opc;
	private Conectar BASE;
	
	
	public void validate(){	
		try{ 

		  	

		}catch(Exception err  ){
			//this.addActionError("Un error "+err.toString()  );
			//hubo un error .....
		}

     }
	
	
	public String cargarProveedor(){
		proveedor=new ArrayList<Listax>();
		String SQL=" select * from proveedor_servicios where mostrar='1' order by descripcion";
		  Resultado RCS=BASE.getBaseDatos().consultar(SQL);
		  if(RCS.RP){
			  do{ 
				  Listax LST=new Listax();
				  LST.setCod(RCS.getCadena("cod"));
				  LST.setDescripcion(RCS.getCadena("descripcion"));
				  proveedor.add(LST);
			  }while(RCS.sigItem()); 
		  }
		  Listax LST=new Listax();
		  LST.setCod("-2");
		  LST.setDescripcion("OTRO");
		  proveedor.add(LST);
		return SUCCESS;  
	}
	
	public String cargarMotivoCambio(){
		motivoCambio=new ArrayList<Listax>();
		String SQL=" select * from motivos_cambio where mostrar='1' order by descripcion ";
		  Resultado RCS=BASE.getBaseDatos().consultar(SQL);
		  if(RCS.RP){
			  do{ 
				  Listax LST=new Listax();
				  LST.setCod(RCS.getCadena("cod"));
				  LST.setDescripcion(RCS.getCadena("descripcion"));
				  motivoCambio.add(LST);
			  }while(RCS.sigItem()); 
		  }
		  Listax LST=new Listax();
		  LST.setCod("-2");
		  LST.setDescripcion("OTRO");
		  motivoCambio.add(LST);
		return SUCCESS;  
	}
	
	
	public String cargarVelocidad(){
		velocidad=new ArrayList<Listax>();

		String SQL=" select cod,descripcion,megas from velocidades_disponibles where mostrar='1'  order by megas ASC ";
		  Resultado RCS=BASE.getBaseDatos().consultar(SQL);
		  if(RCS.RP){
			  do{ 
				  Listax LST=new Listax();
				  LST.setCod(RCS.getCadena("cod"));
				  LST.setDescripcion(RCS.getCadena("descripcion"));
				  velocidad.add(LST);
			  }while(RCS.sigItem()); 
		  }
		return SUCCESS;  
	}
	public String cargarVelocidadProd(){
		producto_vel=new ArrayList<Listax>();
		String SQL=" select cod,descripcion,megas from velocidades_disponibles where mostrar='1' and venta='1' order by  megas ASC ";
		  Resultado RCS=BASE.getBaseDatos().consultar(SQL);
		  if(RCS.RP){
			  do{ 
				  Listax LST=new Listax();
				  LST.setCod(RCS.getCadena("descripcion"));
				  LST.setDescripcion(RCS.getCadena("descripcion"));
				  producto_vel.add(LST);
			  }while(RCS.sigItem()); 
		  }
		return SUCCESS;  
	}
	private String listar_servicios() {
		servicios= new ArrayList<Listax>();
			  try{
		       String SQL="Select X.cod,UPPER(X.descripcion) as descripcion "+
	    	      "From corp_servicios X  "+
	    	      "where X.mostrar='1' and X.prosp='1' Order by X.descripcion  "; 	 	

				Resultado  RCS=BASE.getBaseDatos().consultar(SQL);
				  if(RCS.RP){
					  do{ 
						  Listax LST=new Listax();
						  LST.setCod(RCS.getCadena("descripcion"));
						  LST.setDescripcion(RCS.getCadena("descripcion"));
						  servicios.add(LST);
					  }while(RCS.sigItem()); 
				  }
			   }catch(Exception err  ){
					//hubo un error .....
			}  
		  return SUCCESS;
	} 
	
	public String cargarVelocidadSol(){
		velocidadsol=new ArrayList<Listax>();

		String SQL=" select cod,descripcion,megas from velocidades_disponibles where mostrar='1' and venta='1' order by  megas ASC ";
		  Resultado RCS=BASE.getBaseDatos().consultar(SQL);
		  if(RCS.RP){
			  do{ 
				  Listax LST=new Listax();
				  LST.setCod(RCS.getCadena("cod"));
				  //LST.setDescripcion(RCS.getCadena("descripcion"));
				  LST.setDescripcion(RCS.getCadena("megas")+" Mbps");
				  velocidadsol.add(LST);
			  }while(RCS.sigItem()); 
		  }
		return SUCCESS;  
	}
	public String cargarFuente(){
		fuente=new ArrayList<Listax>();
		String SQL=" select * from fuente_contacto where mostrar='1' order by descripcion ";
		  Resultado RCS=BASE.getBaseDatos().consultar(SQL);
		  if(RCS.RP){
			  do{ 
				  Listax LST=new Listax();
				  LST.setCod(RCS.getCadena("cod"));
				  LST.setDescripcion(RCS.getCadena("descripcion"));
				  fuente.add(LST);
			  }while(RCS.sigItem()); 
		  }
		return SUCCESS;  
	}
	
	
	@SuppressWarnings("rawtypes")
	public String getJSON(){
		Map session = ActionContext.getContext().getSession();
		  Usuario USUARIO = (Usuario)session.get("ses_usuario");
		  if (USUARIO==null){
			  this.addActionError("La sesion del usuario ha caducado");
			  return ERROR;
		  }
		 BASE= new Conectar();
		  if(BASE.getMsg().equals("SI")){	
			   if(this.getOpc()==null){
				    cargarProveedor();
					cargarMotivoCambio();
					cargarVelocidad();
					cargarVelocidadSol();
					cargarFuente();  
					listar_servicios();
			   }else{
				   listar_servicios();
				   cargarVelocidadProd(); 
			   }
			   BASE.getBaseDatos().cerrarConexion(); 
			  return SUCCESS;
		  }else{
			  this.addActionError("No hay conexion al servidor");
		      return ERROR;
		  }
		
    }
	
	
	public ProveedorServicios getProvedorServicio() {
		return provedorServicio;
	}

	public void setProvedorServicio(ProveedorServicios provedorServicio) {
		this.provedorServicio = provedorServicio;
	}


	public List<Listax> getProveedor() {
		return proveedor;
	}


	public void setProveedor(List<Listax> proveedor) {
		this.proveedor = proveedor;
	}


	public List<Listax> getMotivoCambio() {
		return motivoCambio;
	}


	public void setMotivoCambio(List<Listax> motivoCambio) {
		this.motivoCambio = motivoCambio;
	}


	public List<Listax> getVelocidad() {
		return velocidad;
	}


	public void setVelocidad(List<Listax> velocidad) {
		this.velocidad = velocidad;
	}


	public List<Listax> getFuente() {
		return fuente;
	}


	public void setFuente(List<Listax> fuente) {
		this.fuente = fuente;
	}


	public List<Listax> getVelocidadsol() {
		return velocidadsol;
	}


	public void setVelocidadsol(List<Listax> velocidadsol) {
		this.velocidadsol = velocidadsol;
	}


	public List<Listax> getProducto_vel() {
		return producto_vel;
	}
	public void setProducto_vel(List<Listax> producto_vel) {
		this.producto_vel = producto_vel;
	}
	public String getOpc() {
		return opc;
	}
	public void setOpc(String opc) {
		this.opc = opc;
	}
	public List<Listax> getServicios() {
		return servicios;
	}
	public void setServicios(List<Listax> servicios) {
		this.servicios = servicios;
	}
    

}
